#有点像php中的魔术方法

class A:
	name='python';

	#init严格来说并不是构造函数，而是作数据的初始化
	def __init__(self):
		print('init');

	#new函数是真正的构造函数，它会第一个被执行，主要做的工作是分配空间
	def __new__(self):
		print('new');
		return super(A,self).__new__(self);	

	#可以直接用 实例名() 的方式调用__call__
	def __call__(self):
		print('hello',self.name);


a=A();
a();		